/**
 * Stream和Future是Dart语言实现异步处理机制的核心API，
 * 用Future实现异步处理时，所有异步操作的返回值都是由Future表示。
 * 但是Future只能表示一次异步获得的数据，而Stream实现异步事件流的处理，
 * 他表示多次异步获得的数据。
 * 采用Stream方式读文件内容时，一般情况下每次可以读取一部分数据，
 * 并进行相应的处理。
 */
import 'dart:io';
void main(List<String> args) async{
  String fileName = 'Unit5/text.txt';
  print('start');
  Stream stream = getContent(fileName);
  stream.listen((value){
    print(value);
  },onError:(e){
    print('文件错误');
  },onDone:(){
    print('end');
  });
  //print('end');
}
Future<String> readFile(String fileName){
  File file = File(fileName);
  return file.readAsString();
} //异步读文件

String readFileSync(String fileName){
  File file = File(fileName);
  String info = file.readAsStringSync();
  return info;
}//同步读文件

Stream getContent(String fileName){
  File file = File(fileName);
  return file.openRead();
}